
from rest_framework import serializers
from users.models import User

# 定义出一个用户模型类序列化器
# 把用户序列化成：id，username，mobile，email
class UserModelSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = [
            'id',
            'username',
            'mobile',
            'email',

            'password'
        ]

        extra_kwargs = {
            # password字段只作用于反序列化校验新建逻辑
            'password': {'write_only': True}
        }


    # 1、模型类序列化器默认创建的用户is_staff为False：不是超级管理员
    # 2、密码没有加密
    def create(self, validated_data):
        # create_user:函数创建的是普通用户，只不过密码加密
        # instance  = User.objects.create_user(**validated_data)
        # create_superuser:函数创建的是超级管理员账户，并且进行密码加密
        instance = User.objects.create_superuser(**validated_data)
        return instance